Information processing systems in recent years have come to use extensively a nonvolatile memory as an auxiliary storage device or computer storage. Typical nonvolatile memories include a flash memory, a resistance random access memory (ReRAM), a phase-change random access memory (PCRAM), and a magneto-resistive random access memory (MRAM). One typical proposed MRAM is a storage device in which a storage element and an N-type metal-oxide-semiconductor (MOS) transistor connected therewith are provided in each memory cell (e.g., see PTLs 1 and 2). In this storage device, the retention value of a storage element is rewritten when its MOS transistor changes the direction of the current supplied to the storage element. Feeding a source-to-drain current I1 from source to drain of an MOS transistor rewrites the logical value of the storage element to “1,” for example. Feeding a drain-to-source current I0 from drain to source of the MOS transistor rewrites the logical value of the storage element to “0,” for example.
When the source terminal side of the above-described storage element is connected to a bit line, for example, and impressed with a voltage necessary for rewriting data to “1,” the potential of the source terminal approaches the voltage applied to the storage element. In this state, the potential of the source terminal rises, so that the source-to-drain current I1 drops (i.e., drive capability is reduced). This phenomenon is called substrate bias effect. If the source-to-drain current I1 is smaller than a predetermined threshold current, an attempt to rewrite the storage element will fail. This requires making the source-to-drain current I1 equal to or larger than the threshold current by widening the gate width of the MOS transistor or by reducing its gate length, for example. On the other hand, feeding the drain-to-source current I0 does not bring about the substrate bias effect. In many cases, the drain-to-source current I0 is thus sufficiently large. Compared with the source-to-drain current I1, there is little need to enlarge the drain-to-source current I0.